/**
 * @name umi 的路由配置
 * @description 只支持 path,component,routes,redirect,wrappers,name,icon 的配置
 * @param path  path 只支持两种占位符配置，第一种是动态参数 :id 的形式，第二种是 * 通配符，通配符只能出现路由字符串的最后。
 * @param component 配置 location 和 path 匹配后用于渲染的 React 组件路径。可以是绝对路径，也可以是相对路径，如果是相对路径，会从 src/pages 开始找起。
 * @param routes 配置子路由，通常在需要为多个路径增加 layout 组件时使用。
 * @param redirect 配置路由跳转
 * @param wrappers 配置路由组件的包装组件，通过包装组件可以为当前的路由组件组合进更多的功能。 比如，可以用于路由级别的权限校验
 * @param name 配置路由的标题，默认读取国际化文件 menu.ts 中 menu.xxxx 的值，如配置 name 为 login，则读取 menu.ts 中 menu.login 的取值作为标题
 * @param icon 配置路由的图标，取值参考 https://ant.design/components/icon-cn， 注意去除风格后缀和大小写，如想要配置图标为 <StepBackwardOutlined /> 则取值应为 stepBackward 或 StepBackward，如想要配置图标为 <UserOutlined /> 则取值应为 user 或者 User
 * @doc https://umijs.org/docs/guides/routes
 */
export default [
  {
    path: '/user',
    layout: false,
    routes: [{ name: '登录', path: '/user/login', component: './User/Login' }],
  },
  { path: '/welcome', name: '欢迎', icon: 'smile', component: './Welcome' },
  {
    path: '/admin',
    name: '管理页',
    icon: 'fire',
    access: ['canAdmin','canOperate'],
    routes: [
      {
        path: '/admin/channel',
        name: 'Channel管理',
        component: './Channel',
      },
      {
        path: '/admin/channel/pipeline',
        name: 'Pipeline管理',
        component: './Pipeline',
        hideInMenu: true
      },
      {
        path: '/admin/channel/pipeline/data-media-pair',
        name: '映射关系管理',
        component: './DataMediaPair',
        hideInMenu: true
      }
    ],
  },
  {
    path: '/machine-manager',
    name: '机器管理',
    icon: 'link',
    access: ['canAdmin','canOperate'],
    routes: [
      {
        path: '/machine-manager/node',
        name: 'Node管理',
        component: './Node',
      },
      {
        path: '/machine-manager/auto-keeper',
        name: 'zookeeper管理',
        component: './AutoKeeper',
      },
    ],
  },
  {
    path: '/config-manager',
    name: '配置管理',
    icon: 'control',
    access: ['canAdmin','canOperate'],
    routes: [
      {
        path: '/config-manager/canal',
        name: 'Canal配置',
        component: './Canal'
      },
      {
        path: '/config-manager/datasource',
        name: '数据源配置',
        component: './Datasource',
      },
      {
        path: '/config-manager/data-media',
        name: '数据表配置',
        component: './DataMedia',
      },
      {
        path: '/config-manager/data-matrix',
        name: '主备配置',
        component: './DataMatrix',
      },
    ],
  },
  {
    path: '/monitor-manager',
    name: '监控管理',
    icon: 'dashboard',
    access: ['canAdmin','canOperate'],
    routes: [
      {
        path: '/monitor-manager/log',
        name: 'Log记录',
        component: './Log'
      },
      {
        path: '/monitor-manager/alarm-rule',
        name: '监控列表',
        component: './AlarmRule'
      },
      {
        path: '/monitor-manager/topN',
        name: '同步TOP',
        component: './TopN'
      }
    ],
  },
  {
    path: '/system-manager',
    name: '系统管理',
    icon: 'deploymentUnit',
    access: 'canAdmin',
    routes: [
      {
        path: '/system-manager/user-manager',
        name: '用户管理',
        component: './User'
      },
      {
        path: '/system-manager/system-parameter',
        name: '系统参数',
        component: './SystemParameter'
      }
    ],
  },
  {
    path: '/',
    redirect: '/welcome',
  },
  { path: '/', redirect: '/welcome' },
  { path: '*', layout: false, component: './404' },
];
